1. Field of the Invention
The present invention relates to an update system, an update client apparatus, an update server apparatus, and programs for updating firmware and a driver for a disk array system.
2. Description of the Related Art
A disk array system includes a plurality of disk devices. Data is dispersed and stored in the plurality of disk devices. Thus, in case one disk device breaks down, the original data can be recovered based on information stored in the rest of the disk devices. Due to this merit, the disk array system is used as a storage system having high reliability.
The disk array system comprises a disk controller for controlling the plurality of disk devices, and a CPU on which an operating system and utility programs including a driver for the disk controller are activated.
The disk controller comprises an MPU controlled by firmware. The firmware is stored in a memory included in the disk controller, such as an EEPROM, or the like.
In order to correct a bug in the driver and to improve performance of the driver, the driver needs to be updated. And in order to correct a bug in the firmware and to improve performance of the firmware, the firmware needs to be updated.
Since a driver is software in its real sense, it can be updated like ordinary software. In other words, an update program for ordinary software can be used to update a driver.
On the other hand, since firmware is closely related to hardware, an update program for ordinary software cannot be used for updating firmware.
Matters to be paid attention when a driver or firmware is updated are, determining clearly whether update is really necessary for those to be updated, and obtaining appropriate update data.
When users of a driver or firmware do such determination and obtain update data, it costs users a lot of labor, And users may make a wrong determination about the necessity of update, and may choose wrong update data. Therefore, techniques for supporting update of a driver or firmware have been proposed.
Techniques for updating a driver (software) are disclosed in Unexamined Japanese Patent Application KOKAI Publication No. H7-225724, and in Unexamined Japanese Patent Application KOKAI Publication No. 2001-5649.
The technique disclosed in the Unexamined Japanese Patent Application KOKAI Publication No. H7-225724 determines whether the version of activated software is the latest or not by using version information of the software. Then, in a case where the version is not the latest one, the software is updated.
The technique disclosed in the Unexamined Japanese Patent Application KOKAI Publication No. 2001-5649 extracts only differences between an older version and a new version, that is, extracts only renewed portions, and updates the older version software to the latest version software using the extracted portions.
A technique for updating firmware is disclosed in Unexamined Japanese Patent Application KOKAI Publication No. H10-74143.
In a case where a plurality of firmware (micro programs) are activated in a system, the plurality of firmware keep in contact with each other and build up one system. Therefore, according to the technique disclosed in Unexamined Japanese Patent Application KOKAI Publication No. H10-74143, firmware is updated only in a case where combination of the new version of firmware which is to be updated, and the present version of firmware which is not to be updated satisfies a predetermined condition.
None of the above publications discloses a system for updating both a driver and firmware collectively.
A driver of a disk array system controls a disk controller which is controlled by firmware. Thus, when the driver is to be updated, there are some cases that the firmware must be updated together.
In such a case, if a system for updating the driver and a system for updating the firmware are separately provided to users, users might cause a situation where only one of the driver and the firmware is updated and the other is not updated, due to users' lack of knowledge or carelessness. This may disturb coordination between the driver and the firmware, and may bring the disk array system into an unstable condition.
The techniques disclosed in the above referenced publications rely solely on static information such as version information when performing the updating operations. Therefore, drivers or firmware which have the same content may undergo a same updating operation, thus only a fixed updating process can be conducted,
However, there is no need of updating all the software having the same content.
For example, in case of a plurality of disk array systems using drivers and firmware of the same version, some part of the plurality of disk array systems may cause an error event such as a timeout. This may be due to a slight difference in designs of disk controllers used, or due to other causes. To search out the exact cause may consume a lot of time, and may end up in vain.
In the above case where a specific error event is caused in a specific disk array system, only the driver and firmware of the disk array system having the trouble of the error event should be updated.
However, since the techniques of the above referenced publications are based only on static information to determine whether update is necessary or not, effective update as needed is not performed.
The disclosures of Unexamined Japanese Patent Application KOKAI Publication No. H7-225724, Unexamined Japanese Patent Application KOKAI Publication No H10-74143, and Unexamined Japanese Patent Application KOKAI Publication No. 2001-5649 are incorporated herein by reference.